/**
 * Utility generic Pair class.
 * @param <E> Type1
 * @param <T> Type2
 */ 
public class Pair<E, T> {
	/**
	 * First element.
	 */
	private E val1;
	
	/**
	 * Second element.
	 */
	private T val2;
	
	/**
	 * Constructor that takes one value of each type.
	 * @param val1 Value of type 1.
	 * @param val2 Value of type 2.
	 */
	public Pair(E val1, T val2) {
		this.val1 = val1;
		this.val2 = val2;
	}
	
	/**
	 * @return First element.
	 */
	public E val1() {
		return val1;
	}
	
	/** 
	 * @return Second element.
	 */
	public T val2() {
		return val2;
	}
	
	/**
	 * Sets the first value.
	 * @param val Value to set it to.
	 */
	public void setVal1(E val) {
		val1 = val;
	}
	
	/**
	 * Sets the second value.
	 * @param val Value to set it to.
	 */
	public void setVal2(T val) {
		val2 = val;
	}
}
